//package com.online.teaching.config;
//
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Component;
//import org.springframework.util.StringUtils;
//
//import javax.servlet.*;
//import javax.servlet.annotation.WebFilter;
//import javax.servlet.http.Cookie;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletRequestWrapper;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//
///**
// * @ClassName : LoginFilter  //类名
// * @Description :   //描述
// * @Author : YG  //作者
// * @Date: 2020-11-23 22:26  //时间
// */
//@WebFilter(filterName = "LoginFilter", urlPatterns = {"/user/*", "/admin/*", "/teacher/*"})
//public class LoginFilter implements Filter {
//    private static final String AUTHORIZE_TOKEN = "Authorization";
//
//    @Override
//    public void init(FilterConfig filterConfig) throws ServletException {
//
//    }
//
//    @Override
//    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//        System.out.println("过滤器开工了");
//        HttpServletRequestWrapper requestWrapper = new
//                HttpServletRequestWrapper((HttpServletRequest) request) {
//                    /**
//                     * 当调用request.getHeader("token")时，则获取请求参数中token值并当做Header的值返回 * @param name
//                     * @return
//                     */
//                    @Override
//                    public String getHeader(String name) {
//                        // 先从原本的Request中获取头，如果为空且名字为token，则从参数中查找并返回
//                        String superHeader = super.getHeader(name);
//                        if (AUTHORIZE_TOKEN.equals(name)) {
//                            String token = request.getParameter("token");
//                            if (!StringUtils.isEmpty(token)) {
//                                return token;
//                            }
//
//                            Cookie[] cookies = ((HttpServletRequest) request).getCookies();
//                            if (cookies == null) {
//                                outPutErrorResult((HttpServletResponse) response);
//                            } else {
//                                for (int i = 0; i < cookies.length; i++) {
//                                    if (cookies[i].getName().equals(AUTHORIZE_TOKEN)) {
//                                        token = cookies[i].getName();
//                                        break;
//                                    }
//                                }
//                                System.out.println("token"+token);
//                                return token;
//                            }
//                        }
//                        return null;
//                    }
//                };
//        chain.doFilter(request,response);
//    }
//
//    public void outPutErrorResult(HttpServletResponse response) {
//        ServletOutputStream output = null;
//        try {
//            output = response.getOutputStream();
//            output.write(("{\"flag\":\"true\",\"code\":\"20001\",\"msg\":\"请登录账号@！\"}").getBytes());
//            output.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            if (null != output) {
//                try {
//                    output.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//        }
//    }
//
//    @Override
//    public void destroy() {
//
//    }
//}
